using System;
using System.Data;
using IrisGenerator.Common.Tools;
namespace IrisGenerator.Common.Modules
{
    
    
    public partial class ModuleParameter {
        //public static ModuleParameter FromModuleParameterAttribute(ModuleParameterAttribute mpa)
        //{
        //    if (mpa == null)
        //        return null;

        //    ModuleParameter mp = new ModuleParameter();
        //    mp.ModParName = mpa.Name;
        //    mp.ModParMandatory = mpa.Mandatory;
        //    //TODO: Implement Direction...

        //    return mp;
        //}

        public static bool Exists(Guid? id)
        {
            ModuleParameter mp = ModuleParameter.Load(id);
            if (mp != null)
                return true;
            else
                return false;
        }

        public static bool Exists(ModuleParameter parameter)
        {
            if (parameter == null)
                return false;

            if (parameter.Module == null &&
                parameter.ModParId.HasValue &&
                !parameter.ModParId.Value.Equals(Guid.Empty))
                return ModuleParameter.Exists(parameter.ModParId);

            return false;

        }

        public static bool Exists(string name, Module module)
        {
            IrisGenerator.Dal.ModuleParameter dbo = null;
            try
            {
                dbo = new IrisGenerator.Dal.ModuleParameter();
                return dbo.MODULE_PARAMETER_Exists(name, module.ModId);
            }
            catch (System.Exception)
            {
                throw;
            }
            finally
            {
                if ((dbo != null))
                {
                    dbo.Dispose();
                }
            }
        }

        public static ModuleParameter Find(string name, Module module)
        {
            IrisGenerator.Dal.ModuleParameter dbo = null;
            try
            {
                dbo = new IrisGenerator.Dal.ModuleParameter();
                DataSet ds = dbo.MODULE_PARAMETER_Find(name, module.ModId);
                ModuleParameter obj = null;
                if (GlobalTools.IsSafeDataSet(ds))
                {
                    if ((ds.Tables[0].Rows.Count > 0))
                    {
                        obj = new ModuleParameter();
                        obj.Fill(ds.Tables[0].Rows[0]);
                    }
                }
                return obj;
            }
            catch (System.Exception)
            {
                throw;
            }
            finally
            {
                if ((dbo != null))
                {
                    dbo.Dispose();
                }
            }
        }
    }
}
